Low cost or commodity disk drives are predominantly used with single host systems. Popular disk drive interfaces for such low cost disk drives include, for example, SCSI (Small Computer System Interface) or ATA (Advanced Technology or AT Attachment). These disk drives may have a very high capacity and have high performance characteristics when attached to a single system.
The majority of commodity disk drives only attach to a single host system with a simple interface that does not enable the disk drive to be used where access is required from multiple host systems. The ATA interface can only attach a disk drive to a single host system. The SCSI interface architecturally permits multiple host systems at the expense of reducing the number of disks possible. Usually, SCSI interfaces are used on single host systems or, at the most, with two host systems.
Such attachment interfaces to commodity disk drives have limitations when used for high function, high availability systems.
One interface choice for multiple host systems is SSA (Serial Storage Architecture) which is designed for multiple host systems on the same loop and includes functions to retain availability of the network when systems or disks fail. With SSA, malfunctioning systems can be excluded to permit all the other systems to continue operation. SSA networks are cabled as a loop, so any failure of a disk drive will not prevent all the systems from continuing to operate to all the other disk drives. To improve performance in SSA, data is sent on separate wires from those used to receive data. Data can therefore be sent and received concurrently by any node. Another example of an interface which supports multiple hosts is the FC-AL (Fibre Channel Arbitrated Loop) interface.
The current solution to the requirement of connection of disk drives to multiple hosts is to use a special disk drive with a native SSA or FC-AL interface. Such so called native disk drives are made in much lower volumes than commodity disk drives and they are only available from a few suppliers, so they cost significantly more. A native disk drive also requires development resources for each new generation of recording technology and therefore the availability date of such disk drives tends to lag behind commodity disk drives.
Error handling is a function which is different when devices are attached to a single host or to multiple hosts and also when attached to a serial interface rather than a parallel one. An adapter that is added to a single host disk drive (e.g. an ATA disk) to enable that drive to then attach to a multiple host interface has to perform error handling functions expected on a multiple host disk (e.g. an SSA disk) with the limitations of how error handling is performed on a single host disk. Even if the disk drive has a SCSI interface, the adapter that connects this to a multiple host SSA interface has to perform error handling functions expected on a multiple host disk. This is because even though the SCSI interface is architectured to support multi-host attachments, when a SCSI disk is attached to the adapter, the SCSI disk sees only one host i.e. the adapter, so its error handling is limited to single host operations even though the commands it receives came from multiple SSA hosts.
SSA is a serial interface in which data messages can be sent to a disk at the same time as data or messages can be received from the disk. This is unlike SCSI architecture where the bus is only used for one operation at a time, so a SCSI adapter is able to decide what to send next after receipt of a completion message of a command.
In SCSI architecture, when an error is detected performing a command, a “Check Condition” status is returned to the initiator that sent the command. The disk remains in an allegiance condition to that initiator until it receives the next command from that initiator. In SCSI, the next command will always be a “Request Sense” command that retrieves details of the error. This simple error handling is possible because SCSI is a bi-directional parallel interface, the initiator can always ensure that the next command sent by the initiator will be the “Request Sense” command.
In SSA architecture, when an error is encountered by a disk in a multiple host system, the disks stop talking to the host from which the command originated. The disks can carry on talking to the other hosts.
Unlike in SCSI architecture, in SSA architecture, the initiator cannot guarantee that the next command will be the “Request Sense” command because commands are sent asynchronously with status being returned by disks. Separate serial cables are used for outgoing and incoming data and messages. The initiator cannot guarantee that the next command received by the disk will be the “Request Sense” command as it may already have sent another command to that disk that has not yet arrived at the disk when the disk sent its status message. In SSA therefore, a concept of contingent allegiance is required. The term “contingent allegiance” describes an error handling state entered by a disk with an initiator when a disk encounters an error and the state persists until terminated by the initiator when error handling procedures have been completed. When a disk returns “Check Condition” status to a command that terminated in error, the disk enters a contingent allegiance state to that initiator. The initiator enters the same state for that disk when it receives the “Check Condition” status.
The disk drive remains in this state of contingent allegiance until a message is received from the initiator to terminate the contingent allegiance state. Whilst in the contingent allegiance state, the disk drive can only execute commands that are flagged as executable whilst in the contingent allegiance state. The initiator can therefore retrieve sense data by issuing a “Request Sense” command flagged as executable whilst in the contingent allegiance state. The initiator actually issues all commands required for error recovery as being flagged as executable when in contingent allegiance state. When the initiator terminates the contingent allegiance condition, the disk drive starts to execute commands it has queued for the same initiator.
It is desirable to enable a low cost, commodity disk drive to be connected to multiple hosts using an interface that has better availability and performance characteristics than SCSI or ATA and can attach to multiple hosts that is not possible using ATA. An adapter in the form of an interposer card can be used to connect a commodity disk drive to a different interface that has a higher function capability than is available with the interface native to the disk drive.